
package BD;

import gerenciadorveiculos.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Vector;


/**
 *
 * @author Gabriel
 */
public class daoCliente extends acesso{
    
    private String arquivo = "clientes.dat";
    
  
   private void inserirPrimeiro(Cliente cliente){
         Vector<Cliente> vet = new Vector();
         vet.add(cliente);
         
        
         abrirArquivoEscrita(arquivo);
         escreveArquivo(vet);
         fecharArquivoEscrita(arquivo);
      }
    

    public void insere(Cliente cliente) {
        try{
            try{ //abre o arquivo e salva o que ja estava la
                abrirArquivoLeitura(arquivo);
             } catch (FileNotFoundException e){
                 //imprimeErro("(insere)FileNotFoundException - Erro ao abrir arquivo leitura clientes.dat ", e.getMessage() );
                 inserirPrimeiro(cliente);
                return;
             }
        } catch(IOException e){
             imprimeErro("(insere)IOException - Erro ao abrir arquivo leitura clientes.dat ", e.getMessage() );
             System.exit(0);
        }
      
         Vector vet = new Vector();
         vet = (Vector)lerArquivo(); //pasa os dados do arquivo para a memorias
        
         fecharArquivoLeitura(arquivo);
         vet.add(cliente);             // incluir um novo usario na memoria

        
         abrirArquivoEscrita(arquivo);
         escreveArquivo(vet);       // escreve todos os usuarios de volta no arquivo
         fecharArquivoEscrita(arquivo);
    }

   
    public Vector<Cliente> buscarTodos() {

        Vector<Cliente> vet = new Vector();
        try{
            try {
                abrirArquivoLeitura(arquivo);
            } catch (FileNotFoundException e) {
                 imprimeErro("(buscarTdosos) FileNotFoundException - Erro ao abrir arquivo leitura clientes.dat ", e.getMessage() );
            }
        } catch(IOException e){
             imprimeErro("(buscarTodos)IOException - Erro ao abrir arquivo leitura clientes.dat ", e.getMessage() );
             System.exit(0);
        }
        vet = (Vector)lerArquivo();
        fecharArquivoLeitura(arquivo);
        return vet;
    }
    

    public Vector<Cliente> buscar(String cpf) {

       Vector<Cliente> vet = new Vector();
       Vector<Cliente> retorno = new Vector();

       vet = this.buscarTodos();

       for(int i = 0; i< vet.size();i++){
           if(cpf.equals(vet.get(i).getCPF()))
               retorno.add(vet.get(i));
       }
       return retorno;

    }
    

     
     public Cliente buscarCliente(String cpf){

        Vector<Cliente> vet  = new Vector();
         
         vet = this.buscarTodos();
         for(int i = 0; i< vet.size();i++){
           if(cpf.equals(vet.get(i).getCPF()))
               return vet.get(i);
       }
       return null;
    }


    

}
